/*
 * @Author: your name
 * @Date: 2021-08-20 08:49:46
 * @LastEditTime: 2021-09-01 09:54:59
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \vue-cli-vue2\src\utils\formatDate.js
 */
/**
 * 获取某年某月有多少天
 */
export function getMonthLength(month) {
	// new Date(2019, 12, 0).getDate(); // 31
	// new Date(2018, 2, 0).getDate(); // 28
	const date = new Date(month);
	const year = date.getFullYear();
	// 月份是从 0 开始计算的
	const _month = date.getMonth() + 1;
	return new Date(year, _month, 0).getDate();
}

/**
 * 获取日期 周几
 */
export function getWeek(date) {
	const WEEK_MAP = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
	const index = new Date(date).getDay();
	return WEEK_MAP[index];
}

/**
 * 时间戳转化为年 月 日 时 分 秒
 * timer: 传入时间
 * format：返回格式，支持自定义，但参数必须与formateArr里保持一致
 */

export function formatTime(timer, format) {
	let formateArr = ["YYYY", "MM", "DD", "hh", "mm", "ss"];
	let returnArr = [];

	let date = new Date(timer);
	returnArr.push(date.getFullYear());
	returnArr.push(formatNumber(date.getMonth() + 1));
	returnArr.push(formatNumber(date.getDate()));

	returnArr.push(formatNumber(date.getHours()));
	returnArr.push(formatNumber(date.getMinutes()));
	returnArr.push(formatNumber(date.getSeconds()));

	for (let i in returnArr) {
		format = format.replace(formateArr[i], returnArr[i]);
	}
	return format;
}

// 数据转化
function formatNumber(n) {
	n = n.toString();
	return n[1] ? n : "0" + n;
}

/**
 * @description: 获取某年某月有多少天-借助 Date API 处理日期溢出特性 （进位/退位）。月份自动加一，天数0为，指上月最后一天，-1指上月倒数第二天，
 * @param {year} 年
 * @param {month} 月
 * @return {number} 天
 */
export function getMonthCountDay(year, month) {
	return new Date(2021, 1, 0).getDate(); // 退位
	// return 32 - new Date(year, month - 1, 32).getDate(); // 进位
}
